﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using itau.im.entidade;
using System.Collections;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.dado
{
    #region Código Gerado Pela Fábrica de Software (Interface)
    /// <summary>
    /// **************************************************************************************************<BR/>
    /// AUTOR           : Fábrica de Software                                                             <BR/>
    /// DATA DE CRIAÇÃO : 24/08/2010                                                                      <BR/>
    /// ALTERADO POR    :                                                                                 <BR/>
    /// DATA ALTERAÇÃO  :                                                                                 <BR/>
    /// OBJETIVO        : Interface "IGrupoParametrosDAO".                                                <BR/>
    /// **************************************************************************************************<BR/>
    /// </summary>
    public interface IGrupoParametrosDAO
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)

        void CriarProdutoFinanceiroAlocacao(ProdutoFinanceiroAlocacao produtoFinanceiroAlocacao);

        bool ValidaProdutoFinanceiroAlocacaoExistente(int codProdutoFinanceiroDerivado);

        void AtualizarParametroAtribuicaoGrupoAlocacao(ParametroAtribuicaoGrupoAlocacao parametroAtribuicaoGrupoAlocacao);

        void RemoverGrupoParametroAtribuicao(int codigoGrupo);

        void RemoverGrupoParametroAtribuicaoLogica(int codigoGrupo);

        void AtualizarProdutoFinanceiroAlocacao(ProdutoFinanceiroAlocacao produtoFinanceiroAlocacao);

        void AtualizarProdutoFinanceiroAlocacaoPorCodigoProdutoAlocacao(ProdutoFinanceiroAlocacao produtoFinanceiroAlocacao);

        int CriarGrupoParametros(GrupoParametroAtribuicao grupoParametro);

        IList<ParametroAtribuicaoGrupoAlocacao> ObterParametrosAtribuicaoGrupoAlocacaoPorGrupoParametrosVigente(int codigoGrupo);

        IList<ProdutoFinanceiro> ObterProdutosFinanceirosNaoAlocados();

        IList<ProdutoFinanceiroDerivado> ObterProdutosFinanceirosDerivadosNaoAlocados();

        IList<ProdutoFinanceiro> ObterProdutosFinanceirosPorGrupoParametrosVigente(int codigoGrupo);

        IList<ProdutoFinanceiro> ObterProdutosExcecaoPorGrupoParametrosVigente(int codigoGrupo);

        IList<ProdutoFinanceiroDerivado> ObterProdutosFinanceirosDerivadosExcecaoPorGrupoParametrosVigente(int codigoGrupo);

        IList<DominioParametroAtribuicao> ObterDominiosParametrosAtribuicaoPorGrupoVigente(int codigoGrupo);

        IList<GrupoParametroAtribuicao> ObterGruposDeParametros();

        IList<ParametroAtribuicao> ObterParametrosAtribuicaoPorGrupoVigente(int codigoGrupo);

        int ObterNumeroParametroAtribuicaoGrupoAlocacaoPorCodigoDominio(int codigoDominio);

        void CriarParametroAtribuicaoGrupoAlocacao(ParametroAtribuicaoGrupoAlocacao parametroAlocacao);

        IList<ParametroAtribuicao> ObterParametrosNaoAlocadosPorGrupoParametroVigente(int codigoGrupo);

        int ObterNumeroParametrosAtribuicaoGrupoAlocacaoPorCodigoParametro(int codigoParametro);

        IList<RegraAtribuicaoCurva> ObterRegras(int codigoGrupo, DateTime dataInclusaoVigencia);

        int ObterCodigoGrupoParametroAtribuicao(ProdutoFinanceiroDerivado objProdutoFinanceiroDerivado, DateTime dataInicioVigencia);

        IList<ProdutoFinanceiroAlocacao> ObterProdutoFinanceiroAlocacaoPorProdutoDerivado(ProdutoFinanceiroDerivado objProdutoFinanceiroDerivado);

        IList<ProdutoFinanceiroAlocacao> ObterProdutoFinanceiroAlocacaoPorGrupoParametro(int codigoGrupoParametro);

        void RemoverProdutoFinanceiroAlocacoes(int codigoGrupo);

        void RemoverParametroAtribuicaoGrupoAlocacoes(int codigoGrupo);

        #endregion
    }
    #endregion
}
#endregion
